1. Field of the Invention
The present invention relates generally to network-based software applications, and more particularly to a computer-implemented system, method, and computer program product of predicting the response time of a network-based software application.
2. Description of Background Art
A network-based multi-tiered or distributed application that works well across a Local Area Network (LAN) may fail to perform well across a Wide Area Network (WAN). The difference in performance of the application may be due to a number of factors, including network characteristics such as bandwidth, connection parameters, latency, and the like. Accordingly, it is desirable to be able to predict the performance, and particularly the response time, of a network-based application on a particular network, before the application is actually deployed on the network. Such prediction, if reliable, can save substantial costs in developing an application, since network characteristics can be taken into account and the application modified as needed so as to be able to run satisfactorily in the particular network environment.
Traditionally, response time prediction is accomplished in one of two ways. One technique is to perform discrete-event analysis using a simulation of the entire network, as performed, for example, in the xe2x80x9cOptimal Performancexe2x80x9d product from Optimal Networks. Such a technique is often cumbersome, as it generally requires a large number of configurations to be specified in order to build a simulation model of an entire network. In addition, simulation time using discrete-event analysis is often lengthy, particularly if the simulation being implemented is relatively complex.
Another known technique for application response time prediction is to perform a theoretical analysis of network characteristics using, for example, queuing theory. Although well-known in the art, such an approach is often impractical and has been found to be unreliable for many large or medium-sized networks. In many cases, such an approach may also fail to take into account the effects of parallel operations and interrelationships among operations, thus yielding inaccurate results.
What is needed is a system, method, and computer program product of application response time prediction that avoids the limitations of prior art techniques. What is further needed is a system, method, and computer program product for generating application response time predictions in a reliable manner without requiring excessive time or resources for configuration of system-wide simulation models, and without resorting to impractical theoretical approaches. What is further needed is a system, method, and computer program product that takes into account parallel operations and thread interrelationships in generating such predictions.
In accordance with the present invention, there is provided a system and method of application response time prediction that provides accurate predictions without requiring system-wide simulation, and without requiring excessive configuration efforts. The present invention is thus able to estimate performance of an application in a particular network environment, such as for example a WAN.
To predict the performance of a network-based application, the present invention breaks the application down into threads. By predicting the response time of each thread, and taking into account relationships among threads as well as the potential effect of parallel threads, the present invention is able to predict response time for the application as a whole.
The present invention determines predicted response time by performing an analysis of the application""s performance on a LAN, and combining this information with particular characteristics of the WAN on which the application will be deployed. In one embodiment, the present invention takes into account such factors as:
bottleneck bandwidth of the WAN (maximum available WAN link bandwidth);
network configuration, such as for example TCP window size, and the like;
round-trip latency (amount of time required for data to travel from client to server and back, e.g. bit-level latency); and
background load on the bottleneck WAN link (traffic on the link that is not generated by the application).
Performance characteristics of the application on the LAN can include, for example, processing time (client as well as server), while network characteristics of the WAN can include, for example, transmission delays and/or propagation delays. The invention develops a predicted response time by adding the measured processing time to the predicted or measured transmission and/or propagation delay of the WAN. In addition, thread relationships and the effect of parallel threads can be taken into account.
The present invention is able to measure bandwidth for the WAN implementation of the application by determining an equivalent bandwidth based on the bandwidth of the WAN link and the average queue length on the network. Average queue length can be determined based on the utilization factor of the network.
By combining information describing the characteristics of the WAN with known performance characteristics of the application as it operates on a LAN, the present invention generates an accurate prediction of application response time for a WAN-based implementation of the application. The invention is able to generate such predictions for applications having parallel threads as well as for those not having any parallel threads.
The present invention can also take into account WAN characteristics such as slow start flow control which may result in additional turns when the application is deployed, or sliding window flow control which yields a reduced equivalent bandwidth.
In predicting application response time, the present invention also takes into account thread relationships, including for example parent-child relationships and finish-start relationships among threads. When thread overlap may change in the WAN implementation, the present invention takes this into account as well.